home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (C) 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
- #ifndef _TIME_GRID_
- #define _TIME_GRID_
-
- #include <Vk/VkComponent.h>
-
- typedef enum TimeGridReason { TG_none, TG_deselect, TG_requestNew };
-
- typedef struct {
- TimeGridReason reason;
- int value;
- void *data;
- } TimeGridCallback;
-
- typedef struct {
- Widget timeLabel;
- Widget separator;
- } AreaInfo;
-
- class TimeEntryText;
-
- class TimeGrid : public VkComponent {
- public:
- TimeGrid(const char *name, Widget parent,
- Boolean editable = True,
- int timeInterval = 60, int subdivisions = 4,
- int start = 0, int length = 24*60);
- ~TimeGrid();
-
- virtual const char *className();
-
- void setCallback(XtCallbackProc proc, XtPointer client_data);
- void changeDuration(int start, int length);
- int getStart() { return _start; }
- int getLength() { return _length; }
- Boolean requestPosition(int start, int length,
- Position *x_return, Position *y_return,
- Dimension *width_return, Dimension *height_return);
- Boolean requestWeekdayPosition(int start, int length, int weekday,
- Position *x_return, Position *y_return,
- Dimension *width_return,
- Dimension *height_return);
- Boolean requestIntervalPosition(int start, int length,
- Position *x_return, Position *y_return,
- Dimension *width_return,
- Dimension *height_return);
- void requestInterval(Position y, Dimension height,
- int *start_return, int *length_return);
-
- Widget getParent() { return _baseWidget; }
- TimeEntryText *getText() { return _text; }
- XmFontList getTextFontList() { return _textFontList; }
- Dimension getSlotHeight() { return _slotHeight; }
- Dimension getSubDiv() { return _subdiv; }
- Dimension getHeight() { return _numTime*_subdiv*_slotHeight+2*_horizSepHeight; }
- void reconfig(Boolean always = False);
- void reset();
- void hideCurrentTime();
- void showCurrentTime(int start);
-
- protected:
- void createAreas(Widget parent);
- void destroyAreas();
- void callCallback(TimeGridReason reason, int value = 0, void *data = NULL);
- void buttonPress(XEvent *event);
-
- static void reconfig_stub(Widget w, XtPointer client_data, XEvent *event,
- Boolean *dispatch);
- static void button_press(Widget w, XtPointer client_data, XEvent *event,
- Boolean *dispatch);
-
- Widget _left, _right, _bottom, _currentTime;
- int _numTime, _start, _length, _timeInt, _subdiv, _slotHeight;
- AreaInfo *_areas;
- Dimension _marginWidth, _spacing, _horizSepHeight;
- Dimension _width, _height, _leftW, _rightW, _sepH, _maxWidth;
- TimeEntryText *_text;
- XmFontList _textFontList;
- XtCallbackProc _callback;
- XtPointer _callbackData;
- };
-
- #endif
-